#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<limits.h>
//int main()
//{
	//打印有符号整型的最大值:
	//printf("INT_MAX=%d\n", INT_MAX);//%d打印有符号int类型的数据
	
	//打印无符号整型的最大值:
	//printf("UINT_MAX=%u\n", UINT_MAX);//%u打印无符号int类型的数据

	//sizeof返回值类型是size_t是无符号的整型类型
	//可能是:unsigned int
	//		unsigned short int
	//		unsigned long int			%lu
	//		unsigned long long int		%llu
	//只要是size_t类型的就用%zu来打印

	//变量:
	//语法:
	//数据类型 变量名;
	
	//变量名的要求:
	//1.只能由字母数字和下划线组成
	//2.不能用数字开头
	//3.长度不能超过63个字符
	//4.区分大小写
	//5.不能用关键字作为变量名
	//int a;
	//int b;
	//int c;
	//int a, b, c;//不建议这么创建变量,可能会出问题
	//变量在创建时最好附上初始值,即初始化变量.不然在某些编译器上会报错或者警告

//	return 0;
//}


////变量的分类:
//	//1、全局变量:在大括号外部定义的变量
//	int a = 10;//全局变量
//int main()
//{
//	//2、局部变量:在大括号内部定义的变量
//	int b = 20;//局部变量
//	{
//		int c = 30;//局部变量(更加局部)
//		printf("%d", c);
//	}
//	//printf("%d", c);//超出作用域,不可打印
//
//	return 0;
//}


//int a = 10;
//int main()
//{
	//int a = 100;
	//printf("%d", a);//当全局变量和局部变量冲突时，局部变量优先

	//变量是在内存中开辟的一块空间
	//补充知识:
	//内存分为:栈区、堆区、静态区....(目前先只关注这三个)
	//1.局部变量存放在栈区
	//2.全局变量存放在静态区
	//3.堆区是用来动态内存管理的
	//return 0;
//}

int main()
{
	////一、算数操作符:
	////1.+ (有两个操作数,称为双目操作符)
	//
	////2.- (有两个操作数,称为双目操作符)
	//
	////3.*
	//
	////4./ (两个整数相除，如果有小数点就去掉小数点后部分，只保留整数)
	//printf("%d\n", 6 / 4);//执行整数除法，结果是商
	//printf("%f\n", 6 / 4.0);//想要得到小数，要保证除号的两端至少有一个小数。%f打印小数的时候，小数点后默认打印六位
	//int score1 = 5;
	//score1 = (score1 / 20) * 100;//商0乘100仍为0
	//printf("score1=%d\n", score1);
	//int score2 = 5;
	//score2 = (score2 / 20.0)*100;//(score2/20.0)是double类型的数据，赋给score整型类型可能会导致数据丢失
	//printf("score2=%d\n", score2);

	////5.%(取模或取余)
	//int a = 5 % 2;
	//printf("a=%d\n", a);

	////二、赋值操作符:
	////1.连续赋值:
	//a = 3;//赋值
	//int b = 5;//初始化
	//int c = 0;//初始化
	//a = c = 3 + b;//连续赋值
	//printf("a=%d\n", a);
	//printf("c=%d\n", c);
	//
	////2.复合赋值符:
	//a += 3;//a加上3
	//printf("a=%d\n", a);
	//// -=	*=	/=	%=同上

	////三、单目操作符:
	////1.前置++ --
	//int a = 10;
	//int b = 0;
	//b = a++;//先计算表达式再+1
	//printf("a=%d\n", a);
	//printf("b=%d\n", b);

	////2.后置++ --
	//a = 10;
	//b = 0;
	//b = ++a;//先+1再计算表达式
	//printf("a=%d\n", a);
	//printf("b=%d\n", b);
	////3.+ -
	//a = +10;
	//printf("a=%d\n", a);
	//a = 10;
	//printf("a=%d\n", a);
	//a = -10;
	//printf("a=%d\n", a);

	////四、强制类型转换:
	//int c = (int)3.14;//把double类型强制转换为int,只保留整数
	//printf("c=%d\n", c);//强扭的瓜不甜

	//五、printf和scanf的介绍:
	//1.printf:
	//I.占位符:
	int a = 3;
	printf("there are %d apples", a);//%d为占位符,表示这个位置用其他值来替换





	return 0;
}